package com.sisgesbyte.services.administracion;

import java.util.ArrayList;
import java.util.List;
import javax.ejb.EJB;
import javax.ejb.Stateless;
import javax.inject.Inject;
import com.sisgesbyte.common.ConstModAdministracion;
import com.sisgesbyte.common.ConstantesInternasSistema;
import com.sisgesbyte.common.Validaciones;
import com.sisgesbyte.dao.administracion.MantCategoriaClienteDao;
import com.sisgesbyte.dao.beanDao.FiltrosSQLBean;
import com.sisgesbyte.data.entity.administracion.CategoriaClienteEntity;
import com.sisgesbyte.services.administracion.bean.CategoriaClienteBean;
import com.sisgesbyte.services.administracion.bean.CategoriaClienteListaRes;

@Stateless
public class MantenimientoCategoriaClienteImpl implements MantenimientoCategoriaCliente {

	@EJB
	private MantCategoriaClienteDao mantCategoriaClienteDao;
	@Inject
	private Validaciones validaciones;
	
	@Override
	public CategoriaClienteListaRes listaCategoriaCliente( String codTransaccion, FiltrosSQLBean cadenaFiltros) {
		String mensajeTransaccionMetodo = "[listaCategoriaCliente idTx=" + codTransaccion + "] - ";
		CategoriaClienteListaRes response = new CategoriaClienteListaRes();
		
		try{
			 response.setIdTransaccion(codTransaccion);
			 List<CategoriaClienteEntity> resDao = null;
			try{
				resDao = mantCategoriaClienteDao.listaCategoriaCliente(cadenaFiltros);
			}catch(Exception e){
				System.out.println(mensajeTransaccionMetodo + "Hubo un error al listar " +e);
				response.setCodigoRespuesta(ConstModAdministracion.MANT_LISTAR_COD_IDT);
				response.setMensajeRespuesta(ConstModAdministracion.MANT_LISTAR_MSJ_IDT.replace("msj", mensajeTransaccionMetodo));
				return response;
			}
			
			if(resDao.size() > 0){
				List<CategoriaClienteBean> lista = new ArrayList<CategoriaClienteBean>();
				for(CategoriaClienteEntity row : resDao){
					CategoriaClienteBean bean = new CategoriaClienteBean();
						bean.setId(row.getId());
						bean.setCategoria(validaciones.validarCamposString(row.getCategoria()));
						bean.setActive(row.getActive());
						bean.setCodigoBanda(validaciones.validarCamposString(row.getCodigo_banda()));
					lista.add(bean);
				}
				response.setListaCategoriaCliente(lista);
				response.setCodigoRespuesta(ConstantesInternasSistema.CODIGO_EXITO);
				response.setMensajeRespuesta(ConstantesInternasSistema.MENSAJE_EXITO);
			}else{
				response.setCodigoRespuesta(ConstModAdministracion.MANT_LISTAR_COD_IDF);
				response.setMensajeRespuesta(ConstModAdministracion.MANT_LISTAR_MSJ_IDF.replace("msj", mensajeTransaccionMetodo));
			}
			
		}catch(Exception e){
			System.out.println(mensajeTransaccionMetodo + "Hubo un error en el proceso" +e);
			response.setCodigoRespuesta(ConstModAdministracion.MANT_LISTAR_COD_IDT);
			response.setMensajeRespuesta(ConstModAdministracion.MANT_LISTAR_MSJ_IDT.replace("msj", mensajeTransaccionMetodo));
			return response;
		}
		
		return response;
	}

	
}
